home *** CD-ROM | disk | FTP | other *** search
GW-BASIC | 1997-01-29 | 15.6 KB | 521 lines |
- 10 'TOROID - 20 NOV 93 rev. 28 SEP 96
- 20 IF EX$=""THEN EX$="EXIT"
- 30 IF PROG$=""THEN GO$=EX$ ELSE GO$=PROG$
- 40 COMMON EX$,PROG$
- 50 CLS:KEY OFF
- 60 COLOR 7,0,1
- 70 PI=3.14159
- 80 DIM T$(10,4) 'core material - powdered iron
- 90 DIM CT(16,14) 'core size - powdered iron
- 100 DIM F$(8,3) 'core material -ferrite
- 110 DIM CF(7,12) 'core size - ferrite
- 120 DIM GA(40)
- 130 K=(0.46/0.005)^(1/39) 'AWG increment multiplier
- 140 FOR Z=1 TO 40
- 150 N=Z+3
- 160 GA(Z)=0.46/K^N
- 170 NEXT Z
- 180 UL$=STRING$(80,205)
- 190 E$=STRING$(79,32) 'blank line
- 200 GOSUB 4310 'load data
- 210 '
- 220 '.....start
- 230 CLS
- 240 '.....clear variables - except L, which may be chained from another program
- 250 B=0:C=0:F=0:M=0:N=0:R=0:IR=0:X=0:Y=0:XC=0:T=0:U=0
- 260 OD=0:ID=0:TH=0:AF=0:AL=0:ER=0:NP=0:FQ=0
- 270 '
- 280 COLOR 15,2
- 290 PRINT " TOROID INDUCTOR CALCULATOR";TAB(57);"by George Murphy VE3ERP ";
- 300 COLOR 1,0:PRINT STRING$(80,223);
- 310 COLOR 7,0
- 320 PRINT " Press number in < > to choose standard units of measure:"
- 330 PRINT UL$;
- 340 PRINT " < 1 > Metric"
- 350 PRINT " < 2 > U.S.A./Imperial"
- 360 PRINT UL$;
- 370 PRINT " or press < 0 > to EXIT....."
- 380 Z$=INKEY$
- 390 IF Z$="0"THEN CLS:CHAIN GO$
- 400 IF Z$="1"THEN UM=25.4:UM$="mm.":GOTO 430
- 410 IF Z$="2"THEN UM=1:UM$="in.":GOTO 430
- 420 GOTO 380
- 430 PRINT UL$;
- 440 IF L THEN Z$="4":GOTO 600 'if L chained from another program
- 450 PRINT " Press number in < > to:"
- 460 PRINT UL$;
- 470 PRINT " < 3 > CALCULATE flux density"
- 480 PRINT " < 4 > DESIGN a toroidal inductor"
- 490 PRINT " < 5 > FIND inductance of a toroidal device"
- 500 PRINT " < 6 > CHECK inductance of a toroidal device with a grid-dip meter"
- 510 PRINT " < 7 > Determine PROPERTIES of a toroidal inductor."
- 520 PRINT " < 8 > SEE a table of Amidon core materials"
- 530 PRINT " < 9 > SEE a table of Amidon core sizes"
- 540 PRINT UL$;
- 550 PRINT TAB(3);"NOTE:";
- 560 PRINT TAB(10);
- 570 PRINT "All wire calculations are for enamelled solid copper wire."
- 580 Z$=INKEY$
- 590 IF Z$="3"THEN GOSUB 1550:FLUX=1:GOTO 680
- 600 IF Z$="4"THEN GOSUB 1550:GOTO 1950
- 610 IF Z$="5"THEN GOSUB 1550:FLUX=0:GOTO 680
- 620 IF Z$="6"THEN 3060
- 630 IF Z$="7"THEN 3340
- 640 IF Z$="8"THEN SEE=1:GOTO 1550
- 650 IF Z$="9"THEN 4170
- 660 GOTO 580
- 670 '
- 680 '.....calculate flux density
- 690 VIEW PRINT 3 TO 24:CLS:VIEW PRINT:LOCATE 3
- 700 COLOR 7,0:LOCATE 3
- 710 M=ASC(Z$)-96
- 720 PRINT " AMIDON ";
- 730 IF M<=10 THEN C$="T":M$=T$(M,1)+" Powdered-Iron":MM=VAL(M$):D$=T$(M,4)
- 740 IF M>10 THEN C$="F":M=M-10:M$=F$(M,1)+" Ferrite":MM=VAL(M$):D$=F$(M,3)
- 750 PRINT M$;" toroid cores for ";D$;" MHz"
- 760 PRINT UL$;
- 770 PRINT " Press letter in < > to select core size:";
- 780 PRINT TAB(50);"(dimensions in ";UM$;")"
- 790 PRINT STRING$(41,205);TAB(49);"O.D. I.D. Thk."
- 800 IF C$="T"THEN 830
- 810 IF C$="F"THEN 920
- 820 '
- 830 FOR Z=1 TO 16
- 840 PRINT "< ";CHR$(Z+96);" > ";"T-";CT(Z,1);"-";MM;
- 850 IF CT(Z,M+1)>0 THEN 870
- 860 PRINT TAB(21);"Not available in ";T$(M,1);"-mix":GOTO 900
- 870 PRINT TAB(23);USING "####.#";CT(Z,M+1);:PRINT " >H/100 turns";
- 880 IF UM=1 THEN MM$="#####.###" ELSE MM$="#######.#"
- 890 PRINT TAB(44);USING MM$;CT(Z,12)*UM;CT(Z,13)*UM;CT(Z,14)*UM
- 900 NEXT Z:GOTO 1000
- 910 '
- 920 FOR Z=1 TO 7
- 930 PRINT "< ";CHR$(Z+96);" > ";"FT-";CF(Z,1);"-";MM;
- 940 IF CF(Z,M+1)>0 THEN 960
- 950 PRINT TAB(23);"Not available in ";F$(M,1);"-mix":GOTO 980
- 960 PRINT TAB(23);USING "####.#";CF(Z,M+1);:PRINT " mH/1000 turns";
- 970 PRINT TAB(44);USING "#####.###";CF(Z,10);CF(Z,11);CF(Z,12)
- 980 NEXT Z
- 990 '
- 1000 IF C$="T"THEN C=112
- 1010 IF C$="F"THEN C=103
- 1020 Z$=INKEY$
- 1030 IF Z$=""THEN 1020
- 1040 IF ASC(Z$)<96 OR ASC(Z$)>C THEN 1020
- 1050 C=ASC(Z$)-96
- 1060 IF C$="T"THEN SIZE=CT(C,1):AL=CT(C,M+1):MIX=VAL(T$(M,1)):T$="T -"
- 1070 IF C$="T"THEN OD=CT(C,12):ID=CT(C,13):TH=CT(C,14):X=100:L$=">H"
- 1080 IF C$="F"THEN SIZE=CF(C,1):AL=CF(C,M+1):MIX=VAL(F$(M,1)):T$="FT -"
- 1090 IF C$="F"THEN OD=CF(C,10):ID=CF(C,11):TH=CF(C,12):X=1000:L$="mH"
- 1100 VIEW PRINT 3 TO 24:CLS:VIEW PRINT:LOCATE 3
- 1110 U$="#####.###"
- 1120 AE=(OD*2.54-ID*2.54)/2*TH*2.54 'section area in square cm.
- 1130 PRINT TAB(9);"AMIDON core number.............. ";T$;SIZE;"-";MIX
- 1140 PRINT TAB(9);"Outside diameter............OD = ";USING U$;OD*UM;
- 1150 PRINT " ";UM$
- 1160 PRINT TAB(9);"Inside diameter.............ID = ";USING U$;ID*UM;
- 1170 PRINT " ";UM$
- 1180 PRINT TAB(9);"Thickness...................TH = ";USING U$;TH*UM;
- 1190 PRINT " ";UM$
- 1200 PRINT TAB(9);"Section area................AE = ";USING U$;AE;:PRINT " cm<UNK! {FD22}>
- 1210 PRINT TAB(9);"Mfr's Inductance Index......AL = ";USING U$;AL
- 1220 IF FLUX=0 THEN 1260
- 1230 INPUT " ENTER: Applied AC voltage..........ER = ";ER
- 1240 IF ER=0 THEN LOCATE CSRLIN-1:PRINT E$:LOCATE CSRLIN-1:GOTO 1230
- 1250 LOCATE CSRLIN-1:PRINT " ";:LOCATE CSRLIN,42:PRINT USING U$;ER
- 1260 INPUT " ENTER: Number of core turns........NP = ";NP
- 1270 IF NP=0 THEN LOCATE CSRLIN-1:PRINT E$:LOCATE CSRLIN-1:GOTO 1260
- 1280 LOCATE CSRLIN-1:PRINT " ";:LOCATE CSRLIN,42:PRINT USING U$;NP
- 1290 L=(NP/X)^2*AL
- 1300 PRINT TAB(9);"Inductance...................L = ";USING U$;L;:PRINT " ";L$
- 1310 IF FLUX=0 THEN 1420
- 1320 INPUT " ENTER: Operating Fqcy. in MHz......FQ = ";FQ
- 1330 IF FQ=0 THEN LOCATE CSRLIN-1:PRINT E$:LOCATE CSRLIN-1:GOTO 1320
- 1340 LOCATE CSRLIN-1:PRINT " ";:LOCATE CSRLIN,42:PRINT USING U$;FQ
- 1350 F=FQ*10^6 'frequency in Hertz
- 1360 INPUT " ENTER: DC current in amps(if any)..DC = ";DC
- 1370 LOCATE CSRLIN-1:PRINT " ";:LOCATE CSRLIN,42:PRINT USING U$;DC
- 1380 '
- 1390 B=ER*10^8/(4.44*F*NP*AE)
- 1400 IF DC THEN B=B+NP*DC*AL/(10*AE)
- 1410 PRINT TAB(9);"Flux density in Gauss .......B = ";USING U$;B
- 1420 PRINT UL$;
- 1430 GOSUB 5080 'screendump
- 1440 'IF FLUX THEN 1490
- 1450 LOCATE 25,1:PRINT STRING$(79,32);
- 1460 COLOR 14,6
- 1470 LOCATE 25,16:PRINT " Do you want to find another inductance? (y/n) ";
- 1480 COLOR 7,0
- 1490 Z$=INKEY$
- 1500 IF Z$="n"OR Z$="N"THEN 5050 'end without screen dump
- 1510 IF Z$="y"OR Z$="Y"THEN GOSUB 1550:GOTO 680
- 1520 GOTO 1490
- 1530 GOTO 5020 'end
- 1540 '
- 1550 '.....select a core
- 1560 VIEW PRINT 3 TO 24:CLS:VIEW PRINT:LOCATE 3
- 1570 PRINT " The last digit(s) in an AMIDON code number constitute";
- 1580 PRINT " the Mix Number."
- 1590 IF SEE=1 THEN 1610
- 1600 PRINT " Press code letter in < > below to indicate AMIDON core material:"
- 1610 PRINT UL$;
- 1620 IF SEE=1 THEN 1640
- 1630 PRINT " CODE";
- 1640 PRINT TAB(8);"MIX #";TAB(16);"CORE MATERIAL";TAB(31);"COLOR";
- 1650 PRINT TAB(40);"PERMEABILITY";TAB(55);"FQCY.RANGE (MHz)"
- 1660 '
- 1670 '.....print table
- 1680 FOR Z=1 TO 18
- 1690 IF SEE=1 THEN PRINT " ";:GOTO 1710
- 1700 PRINT " < ";CHR$(Z+96);" > ";
- 1710 IF Z<=10 THEN 1730
- 1720 IF Z>10 THEN 1770
- 1730 T$=T$(Z,1)
- 1740 IF LEN(T$)<2 THEN T$=" "+T$
- 1750 PRINT T$;TAB(16);"Powdered Iron";
- 1760 PRINT TAB(31);T$(Z,2);TAB(40);T$(Z,3);TAB(55)T$(Z,4);:GOTO 1810
- 1770 F$=F$(Z-10,1)
- 1780 IF LEN(F$)<2 THEN F$=" "+F$
- 1790 PRINT F$;TAB(16);"Ferrite";
- 1800 PRINT TAB(40);F$(Z-10,2);TAB(55)F$(Z-10,3);
- 1810 IF SEE=1 THEN PRINT TAB(72);" ";:GOTO 1830
- 1820 PRINT TAB(72);"< ";CHR$(Z+96);" > ";
- 1830 NEXT Z
- 1840 COLOR 0,7:LOCATE 25,7:PRINT " ( <f> recommended for 1-11 MHz. ";
- 1850 PRINT "<g> recommended for 10-30 MHz. ) ";
- 1860 COLOR 7,0
- 1870 IF SEE=1 THEN 1930
- 1880 Z$=INKEY$:IF Z$=""THEN 1880
- 1890 IF ASC(Z$)<=78 AND ASC(Z$)>=65 THEN Z$=CHR$(ASC(Z$)+32)
- 1900 IF ASC(Z$)>=97 AND ASC(Z$)<=114 THEN 1920
- 1910 GOTO 1880
- 1920 RETURN
- 1930 GOTO 5020 'end
- 1940 '
- 1950 '.....display selected item
- 1960 VIEW PRINT 3 TO 24:CLS:VIEW PRINT
- 1970 COLOR 15,2:LOCATE 1,18:PRINT "CORE SELECTION "
- 1980 COLOR 7,0:LOCATE 3
- 1990 M=ASC(Z$)-96
- 2000 IF M<=10 THEN C$="T"
- 2010 IF M>10 THEN C$="F":M=M-10
- 2020 PRINT " CORE:";
- 2030 IF C$="T"THEN 2050
- 2040 IF C$="F"THEN 2070
- 2050 PRINT TAB(8);T$(M,1);TAB(16);"Powdered Iron";TAB(31);T$(M,2);
- 2060 PRINT TAB(40);T$(M,3);TAB(55)T$(M,4);" MHz":DASH=VAL(T$(M,1)):GOTO 2090
- 2070 PRINT TAB(8);F$(M,1);TAB(16);"Ferrite";
- 2080 PRINT TAB(40);F$(M,2);TAB(55)F$(M,3);" Mhz":DASH=VAL(F$(M,1))
- 2090 PRINT UL$;
- 2100 '
- 2110 '.....input data
- 2120 IF L THEN 2150
- 2130 IF C$="T"THEN INPUT" ENTER: Desired inductance in >H.......";L
- 2140 IF C$="F"THEN INPUT" ENTER: Desired inductance in mH.......";L
- 2150 VIEW PRINT 3 TO 24:CLS:VIEW PRINT:LOCATE 3
- 2160 IF UM=1 THEN 2190
- 2170 INPUT " ENTER: Wire diameter (mm) ";R
- 2180 R=R/25.4/2:GOTO 2210
- 2190 INPUT " ENTER: Wire size (AWG#) ";GA$
- 2200 R=GA(VAL(GA$))/2
- 2210 CLS
- 2220 IF C$="T"THEN 2250
- 2230 IF C$="F"THEN 2610
- 2240 '
- 2250 '.....powdered iron core calculations
- 2260 COLOR 15,1,1
- 2270 IF UM=1 THEN D$=" inches "ELSE D$="SOUNDSOUND mm.SOUNDSOUND"
- 2280 PRINT " AMIDON";TAB(14);"CALLVARPTRSOUNDSOUNDSOUNDSOUNDSOUNDSOUND";D$;"SOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDCOLORCALL";
- 2290 PRINT TAB(39);">H/100CALL";TAB(47);"No.of turns CALL";
- 2300 IF UM=1 THEN M$=CHR$(34)+" " ELSE M$="mm"
- 2310 PRINT TAB(61);"Wire^";USING "##.###";R*2*UM;:PRINT M$;
- 2320 IF GA$<>""THEN PRINT " AWG ";GA$;:GOTO 2340
- 2330 PRINT " ";
- 2340 PRINT "Core # - mix CALL";TAB(17);"O.D.";TAB(25);"I.D.";TAB(32)"Thick CALL";
- 2350 PRINT TAB(40);"turnsCALL";TAB(47);"for";L;">H";TAB(59);"CALL";
- 2360 PRINT " Maximum Turns ";
- 2370 PRINT UL$;
- 2380 LOCATE CSRLIN-1,14:PRINT "STEP"
- 2390 LOCATE CSRLIN-1,38:PRINT "STEP"
- 2400 LOCATE CSRLIN-1,45:PRINT "STEP"
- 2410 LOCATE CSRLIN-1,59:PRINT "STEP"
- 2420 COLOR 7,0,1
- 2430 FOR Z=1 TO 16
- 2440 PRINT "T-";CT(Z,1);"-";DASH;
- 2450 IF CT(Z,M+1)=0 THEN PRINT TAB(14);"not available in this mix":GOTO 2540
- 2460 N=100*SQR(L/CT(Z,M+1)) 'number of turns
- 2470 IF UM=1 THEN M$="####.###"ELSE M$="######.#"
- 2480 PRINT TAB(13);USING M$;CT(Z,12)*UM;CT(Z,13)*UM;CT(Z,14)*UM;
- 2490 PRINT USING "######.#";CT(Z,M+1);
- 2500 PRINT USING "######.##";N;
- 2510 IR=CT(Z,13)/2:GOSUB 2940 'IR = I.D./2
- 2520 PRINT TAB(59);USING "####";MAX;
- 2530 IF N<MAX THEN PRINT " approx."ELSE PRINT " CORE TOO SMALL"
- 2540 NEXT Z
- 2550 COLOR 15,1,1:PRINT UL$;:COLOR 7,0,1
- 2560 PRINT " T-37 cores recommended for power levels up to 10 watts."
- 2570 PRINT " T-50 cores recommended for power levels of 10 to 50 watts."
- 2580 PRINT " T-68 cores recommended for power levels of 50 to 100 watts."
- 2590 GOTO 5020 'end
- 2600 '
- 2610 '.....ferrite core calculations
- 2620 COLOR 15,1,1
- 2630 IF UM=1 THEN D$=" inches "ELSE D$="SOUNDSOUND mm.SOUNDSOUND"
- 2640 PRINT " AMIDON";TAB(14);"CALLVARPTRSOUNDSOUNDSOUNDSOUNDSOUNDSOUND";D$;"SOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDCOLORCALL";
- 2650 PRINT TAB(39);"mH/1000";TAB(46);"CALLNo.of turnsCALL";
- 2660 IF UM=1 THEN M$=CHR$(34)+" " ELSE M$="mm"
- 2670 PRINT TAB(60);"Wire^";USING "##.###";R*2;:PRINT M$;
- 2680 IF GA$<>""THEN PRINT " AWG ";GA$;" ";:GOTO 2700
- 2690 PRINT " ";
- 2700 PRINT "Core # - mix CALL";TAB(17);"O.D.";TAB(25);"I.D.";TAB(32)"Thick CALL";
- 2710 PRINT TAB(40);"turns";TAB(46);"CALLfor";L;"mH";TAB(58);"CALL";
- 2720 PRINT " Maximum Turns ";
- 2730 PRINT UL$;
- 2740 LOCATE CSRLIN-1,14:PRINT "STEP"
- 2750 LOCATE CSRLIN-1,38:PRINT "STEP"
- 2760 LOCATE CSRLIN-1,46:PRINT "STEP"
- 2770 LOCATE CSRLIN-1,58:PRINT "STEP"
- 2780 COLOR 7,0,1
- 2790 FOR Z=1 TO 7:IF CF(Z,M+1)=0 THEN 2900
- 2800 IF CF(Z,M+1)=0 THEN PRINT TAB(14);"not available in this mix":GOTO 2900
- 2810 N=1000*SQR(L/CF(Z,M+1)) 'number of turns
- 2820 PRINT"FT-";CF(Z,1);"-";DASH;
- 2830 PRINT TAB(14);USING "###.###";CF(Z,10);
- 2840 PRINT USING "####.###";CF(Z,11);CF(Z,12);
- 2850 PRINT USING "#######.#";CF(Z,M+1);
- 2860 PRINT USING "######.##";N;
- 2870 IR=CF(Z,11)/2:GOSUB 2940 'ir = I.D./2
- 2880 PRINT TAB(59);USING "####";MAX;
- 2890 IF N<MAX THEN PRINT " approx."ELSE PRINT " CORE TOO SMALL"
- 2900 NEXT Z
- 2910 COLOR 15,1,1:PRINT UL$;:COLOR 7,0,1
- 2920 GOTO 5020 'end
- 2930 '
- 2940 '.....max. no.of turns
- 2950 IF IR<R THEN MAX=0:GOTO 3040
- 2960 IF IR>=R+1.4142*R THEN 3010
- 2970 MAX=4
- 2980 IF IR< R+R*1.4142 THEN MAX=3
- 2990 IF IR< R+R*1.1547 THEN MAX=2
- 3000 GOTO 3040
- 3010 X=SQR((IR-R)^2-R^2)
- 3020 Y=ATN(R/X)
- 3030 MAX=PI/Y*0.9 '.9 is provisional factor
- 3040 RETURN
- 3050 '
- 3060 '.....check inductance
- 3070 VIEW PRINT 3 TO 24:CLS:VIEW PRINT
- 3080 COLOR 15,2:LOCATE 1,18:PRINT "CHECK "
- 3090 COLOR 7,0:LOCATE 3
- 3100 PRINT TAB(9);
- 3110 PRINT "Refer to the ARRL HANDBOOK FOR THE RADIO AMATEUR for method of";
- 3120 PRINT TAB(9);
- 3130 PRINT "checking the inductance of a toroidal device with a grid dip meter."
- 3140 PRINT
- 3150 PRINT TAB(9);
- 3160 PRINT "This program will perform all the necessary calculations:"
- 3170 PRINT UL$;
- 3180 INPUT " ENTER: Capacitance of known capacitor in pF .......";C
- 3190 IF C=0 THEN LOCATE CSRLIN-1:PRINT E$:LOCATE CSRLIN-1:GOTO 3180
- 3200 LOCATE CSRLIN-1:PRINT " ";:LOCATE CSRLIN,53:PRINT USING "#####.###";C
- 3210 C=C/10^6 '>F
- 3220 INPUT " ENTER: Measured frequency in MHz...................";F
- 3230 IF F=0 THEN LOCATE CSRLIN-1:PRINT E$:LOCATE CSRLIN-1:GOTO 3220
- 3240 LOCATE CSRLIN-1:PRINT " ";:LOCATE CSRLIN,53:PRINT USING "#####.###";F
- 3250 XC=1/(2*PI*F*C):XL=XC
- 3260 L=XL/(2*PI*F)
- 3270 PRINT " Reactance of known capacitor in ohms........";
- 3280 PRINT USING "#####.###";XC
- 3290 PRINT " Inductance of toroidal device in >H.........";
- 3300 PRINT USING "#####.###";L
- 3310 PRINT UL$;
- 3320 GOTO 5020 'end
- 3330 '
- 3340 '.....properties of a toroidal inductor
- 3350 VIEW PRINT 3 TO 24:CLS:VIEW PRINT
- 3360 COLOR 15,2:LOCATE 1,18:PRINT "PROPERTIES "
- 3370 COLOR 7,0:LOCATE 3
- 3380 U$="#####.###"
- 3390 GOTO 3470
- 3400 '
- 3410 LOCATE CSRLIN-1:PRINT " ":LOCATE CSRLIN-1,46:PRINT USING U$;Z*UM;
- 3420 RETURN
- 3430 '
- 3440 LOCATE CSRLIN-1:PRINT " ":LOCATE CSRLIN-1,46:PRINT USING U$;Z
- 3450 RETURN
- 3460 '
- 3470 PRINT " ENTER: OUTER diameter of core...............";UM$;
- 3480 INPUT OD:OD=OD/UM
- 3490 IF OD=0 THEN LOCATE CSRLIN-1:PRINT E$:LOCATE CSRLIN-1:GOTO 3470
- 3500 Z=OD:GOSUB 3410:PRINT " ";UM$
- 3510 PRINT " ENTER: INNER diameter of core...............";UM$;
- 3520 INPUT ID:ID=ID/UM
- 3530 IF ID=0 THEN LOCATE CSRLIN-1:PRINT E$:LOCATE CSRLIN-1:GOTO 3510
- 3540 Z=ID:GOSUB 3410:PRINT " ";UM$
- 3550 PRINT " ENTER: THICKNESS of core....................";UM$;
- 3560 INPUT T:T=T/UM
- 3570 IF T=0 THEN LOCATE CSRLIN-1:PRINT E$:LOCATE CSRLIN-1:GOTO 3550
- 3580 Z=T:GOSUB 3410:PRINT " ";UM$
- 3590 AREA=(OD-ID)/2*T*2.54^2
- 3600 PRINT " Cross-section area of ring...........";USING U$;AREA;
- 3610 PRINT " cm<UNK! {FD22}>
- 3620 LG=(OD+ID)/2*PI*2.54
- 3630 PRINT " Length of flux path..................";USING U$;LG;
- 3640 PRINT " cm."
- 3650 '
- 3660 '.....determine missing factor
- 3670 PRINT UL$;
- 3680 PRINT " Any two of the following factors must be known ";
- 3690 PRINT "to complete calculations."
- 3700 PRINT " Press number in < > to indicate ";:COLOR 15,0:PRINT "UNKNOWN";
- 3710 COLOR 7,0:PRINT " factor:"
- 3720 PRINT UL$;
- 3730 PRINT " < 1 > > factor (permeability) of core"
- 3740 PRINT " < 2 > Number of primary turns"
- 3750 PRINT " < 3 > Inductance of device in >H"
- 3760 Z$=INKEY$:IF Z$="" THEN 3760
- 3770 IF Z$="1"THEN U=-1:GOTO 3810
- 3780 IF Z$="2"THEN NP=-1:GOTO 3810
- 3790 IF Z$="3"THEN L=-1:GOTO 3810
- 3800 GOTO 3760
- 3810 VIEW PRINT 9 TO 24:CLS:VIEW PRINT:LOCATE 9
- 3820 '
- 3830 '.....input permeability factor
- 3840 IF U=-1 THEN 3890
- 3850 INPUT " ENTER: Effective core permeability.........>=";U
- 3860 IF U=0 THEN LOCATE CSRLIN-1:PRINT E$:LOCATE CSRLIN-1:GOTO 3850
- 3870 Z=U:GOSUB 3440
- 3880 '
- 3890 '.....input number of turns
- 3900 IF NP=-1 THEN 3950
- 3910 INPUT " ENTER: Number of primary turns...............";NP
- 3920 IF NP=0 THEN LOCATE CSRLIN-1:PRINT E$:LOCATE CSRLIN-1:GOTO 3910
- 3930 Z=NP:GOSUB 3440
- 3940 '
- 3950 '.....input inductance
- 3960 IF L=-1 THEN 4010
- 3970 IF L<>-1 THEN INPUT " ENTER: Inductance in >H......................";L
- 3980 IF L=0 THEN LOCATE CSRLIN-1:PRINT E$:LOCATE CSRLIN-1:GOTO 3970
- 3990 Z=L:GOSUB 3440
- 4000 '
- 4010 '.....end printout
- 4020 LOCATE 11
- 4030 IF U<>-1 THEN 4060
- 4040 U=L/(0.4*PI*NP^2*AREA/LG*10^-2)
- 4050 PRINT " Effective core permeability........>=";USING U$;U
- 4060 IF L<>-1 THEN 4090
- 4070 L=0.4*PI*NP^2*U*AREA/LG*10^-2
- 4080 PRINT " Inductance in >H.....................";USING U$;L
- 4090 IF NP<>-1 THEN 4120
- 4100 NP=SQR(L/(0.4*PI*U*AREA/LG*10^-2))
- 4110 PRINT " Number of primary turns..............";USING U$;NP
- 4120 AL=L/(NP^2*10^-4)
- 4130 PRINT " >H per 100 turns (Mfr.'s AL no.)....EQV";USING U$;AL
- 4140 PRINT UL$
- 4150 GOTO 5020 'end
- 4160 '
- 4170 '.....core size table
- 4180 CLS
- 4190 IF UM=1 THEN U$="#######.###"ELSE U$="#########.#"
- 4200 PRINT " CORE SIZE O.D.(";UM$;") I.D.(";UM$;") THK.(";UM$;")"
- 4210 FOR Z=1 TO 16:PRINT " T -";CT(Z,1);
- 4220 PRINT TAB(12);USING U$;CT(Z,12)*UM,CT(Z,13)*UM,CT(Z,14)*UM
- 4230 NEXT Z
- 4240 FOR Z=1 TO 7:PRINT " FT -";CF(Z,1);
- 4250 PRINT TAB(12);USING U$;CF(Z,10)*UM,CF(Z,11)*UM,CF(Z,12)*UM;
- 4260 IF Z<7 THEN PRINT ""
- 4270 NEXT Z
- 4280 GOTO 5020 'end
- 4290 END
- 4300 '
- 4310 'LOAD DATA........
- 4320 '.....core description - powdered iron
- 4330 DATA 41,Green,>=75,---
- 4340 DATA 26,Yel/Wh,>=75,0-1
- 4350 DATA 3,Grey,>=35,0.05-0.5
- 4360 DATA 15,Red/Wh,>=25,0.1-2.0
- 4370 DATA 1,Blue,>=20,0.5-5.0
- 4380 DATA 2,Red,>=10,1-30
- 4390 DATA 6,Yellow,>=8,10-90
- 4400 DATA 10,Black,>=6,60-150
- 4410 DATA 12,Grn/Wh,>=3,100-200
- 4420 DATA 0,Tan,>=1,150-300
- 4430 FOR Z=1 TO 10:FOR Y=1 TO 4:READ T$(Z,Y):NEXT Y:NEXT Z
- 4440 '
- 4450 '.....inductance index & core dimensions - powdered iron
- 4460 DATA 200,755,895,425,0,250,120,100,0,0,0
- 4470 DATA 2,1.25,.55
- 4480 DATA 184,1640,1640,720,0,500,240,195,0,0,0
- 4490 DATA 1.84,.95,.71
- 4500 DATA 157,970,970,420,360,320,140,115,0,0,0
- 4510 DATA 1.57,.95,.57
- 4520 DATA 130,785,785,330,250,200,110,96,0,0,15
- 4530 DATA 1.3,.78,.437
- 4540 DATA 106,900,900,405,345,325,135,116,0,0,19
- 4550 DATA 1.06,.56,.437
- 4560 DATA 94,590,590,248,200,160,84,70,58,32,10.6
- 4570 DATA .942,.56,.312
- 4580 DATA 80,450,450,180,170,115,55,45,32,22,8.5
- 4590 DATA .795,.495,.25
- 4600 DATA 68,420,420,195,180,115,57,47,32,21,7.5
- 4610 DATA .69,.37,.19
- 4620 DATA 50,320,320,175,135,100,49,40,31,18,6.4
- 4630 DATA .5,.303,.19
- 4640 DATA 44,229,360,180,160,105,52,42,33,0,6.5
- 4650 DATA .44,.229,.159
- 4660 DATA 37,308,275,120,90,80,40,30,25,15,4.9
- 4670 DATA .375,.205,.128
- 4680 DATA 30,375,325,140,93,85,43,36,25,16,6
- 4690 DATA .307,.151,.128
- 4700 DATA 25,225,0,100,85,70,34,27,19,12,4.5
- 4710 DATA .255,.12,.096
- 4720 DATA 20,175,0,90,65,52,27,22,16,10,3.5
- 4730 DATA .2,.088,.067
- 4740 DATA 16,130,0,61,55,44,22,19,13,8,3
- 4750 DATA .16,.078,.06
- 4760 DATA 12,112,0,60,50,43,20,17,12,7.5,3
- 4770 DATA .125,.062,.05
- 4780 FOR Z=1 TO 16:FOR Y=1 TO 14:READ CT(Z,Y):NEXT Y:NEXT Z
- 4790 '
- 4800 '.....core description - ferrite
- 4810 DATA 68,>=20,---
- 4820 DATA 63,>=40,15-25
- 4830 DATA 67,>=40,15-25
- 4840 DATA 61,>=125,.2-10
- 4850 DATA 43,>=950,.01-1
- 4860 DATA 77,>=2000,.001-1
- 4870 DATA 72,>=2000,.001-1
- 4880 DATA 75,>=5000,.001-1
- 4890 FOR Z=1 TO 8:FOR Y=1 TO 3:READ F$(Z,Y):NEXT Y:NEXT Z
- 4900 '
- 4910 '.....inductance index & core dimensions - ferrite
- 4920 DATA 23,4,7.9,7.9,24.8,188,396,396,995,.23,.12,.06
- 4930 DATA 37,8.8,19.7,19.7,55.3,420,884,884,2220,.375,.187,.125
- 4940 DATA 50,11,22,22,68.8,523,1100,1100,2740,.5,.281,.188
- 4950 DATA 82,11.7,22.4,22.4,73.3,557,1172,1172,2940,.825,.52,.25
- 4960 DATA 114,12.7,25.4,25.4,79.3,603,1270,1270,3170,1.142,.748,.295
- 4970 DATA 140,-,-,45,140,952,2240,2240,-,1.4,.9,.5
- 4980 DATA 240,-,-,53,171,1239,-,3133,-,2.4,1.4,.5
- 4990 FOR Z=1 TO 7:FOR Y=1 TO 12:READ CF(Z,Y):NEXT Y:NEXT Z
- 5000 RETURN
- 5010 '
- 5020 '.....end
- 5030 GOSUB 5080
- 5040 IF EX$<>GO$ THEN CLS:CHAIN GO$
- 5050 L=0:GOTO 220
- 5060 END
- 5070 '
- 5080 'HARDCOPY
- 5090 GOSUB 5200:LOCATE 25,2:COLOR 14,6
- 5100 PRINT " Press 1 to print screen, 2 to print screen & ";
- 5110 PRINT "advance paper, or 3 to continue.";:COLOR 7,0
- 5120 Z$=INKEY$:IF Z$="3"THEN GOSUB 5200:RETURN
- 5130 IF Z$="1"OR Z$="2"THEN GOSUB 5200:GOTO 5150
- 5140 GOTO 5120
- 5150 FOR QX=1 TO 24:FOR QY=1 TO 80
- 5160 LPRINT CHR$(SCREEN(QX,QY));
- 5170 NEXT QY:NEXT QX
- 5180 IF Z$="2"THEN LPRINT CHR$(12)
- 5190 GOTO 5090
- 5200 LOCATE 25,1:PRINT STRING$(80,32);:RETURN
-